# 创建新的进程还能够使用类的方式，可以自定义一个类，继承Process类，每次实例化这个类的时候，就等同于实例化一个进程对象
from multiprocessing import Process
import time
import os

startTime = time.time()
time.ctime()  # Tue Jul 18 10:49:52 2017


# 创建进程有两种方式：利用Process，另外继承Process类
# p.start 一定会调用run方法执行
# 另外一种创建子进程的方式

# 继承Process类
class MyNewProcess(Process):
    # 因为Process类本身也有__init__方法，这个子类相当于重写了这个方法
    # 我们并没有完全初始化一个Process类，最好的方法就是讲继承类本身传递给
    # Process.__init__方法，完成这些初始化操作
    def __init__(self):
        Process.__init__(self)

    def run(self):
        for i in range(5):
            print("-运行run方法，id is %d---" % os.getpid())
            time.sleep(1)


if __name__ == '__main__':
    p = MyNewProcess()
    p.start()

endTime = time.time()  # 1500346213.4717257
timeN = endTime - startTime
print("这是一种计算程序运行的时间t=%0.5f,id is %d" % (timeN, os.getpid()))
'''
这是一种计算程序运行的时间t=0.17700,id is 9992
这是一种计算程序运行的时间t=0.00000,id is 9224
-运行run方法，id is 9224---
-运行run方法，id is 9224---
-运行run方法，id is 9224---
-运行run方法，id is 9224---
-运行run方法，id is 9224---
'''

